package com.leyou.item.pojo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import tk.mybatis.mapper.annotation.KeySql;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;

/**
 * 提示：spu表，该表描述的是一个抽象性的商品，比如 iphone8
 * description: spu实体类
 * @author 朱正磊
 * @date 2021-04-01 18:30:41
 */
@Data
@Table(name = "tb_spu")
public class Spu {

    /**
     * 自增长主键
     */
    @Id
    @KeySql(useGeneratedKeys = true)
    private Long id;

    /**
     * 商品所属品牌id
     */
    private Long brandId;

    /**
     * 1级类目id
     */
    private Long cid1;

    /**
     * 2级类目id
     */
    private Long cid2;

    /**
     * 3级类目id
     */
    private Long cid3;

    /**
     * 标题
     */
    private String title;

    /**
     * 子标题
     */
    private String subTitle;

    /**
     * 是否上架，0下架，1上架
     */
    private Boolean saleable;

    /**
     * 是否有效，0已删除，1有效
     * 不返回给前端页面
     */
    @JsonIgnore
    private Boolean valid;

    /**
     * 添加时间
     */
    private Date createTime;

    /**
     * 最后修改时间
     * 不返回给前端页面
     */
    @JsonIgnore
    private Date lastUpdateTime;

    // ============================【以下为非表字段映射属性】============================ //

    /**
     * 商品分类名称
     */
    @Transient
    private String cname;

    /**
     * 品牌名称
     */
    @Transient
    private String bname;

    /**
     * sku集合
     */
    @Transient
    private List<Sku> skus;

    /**
     * spu详情
     */
    @Transient
    private SpuDetail spuDetail;

}
